/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package domen;

import model.Storage;
import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author Vlada
 */
abstract public class Entitet {
    /**
     * ubacuje entitet u hash mapu
     */
   public abstract void ubaciEntitet();

   public boolean izbrisiEntitet(String key) {
        if (!(Storage.getInstance().getMapaPodataka() == null) && Storage.getInstance().getMapaPodataka().containsKey(key)) {

            Storage.getInstance().getMapaPodataka().remove(key);
            return true;
        }
        return false;
    }
 /**
     * menja postojeci objekat, tj njegove parametre
     * @param key - ime fakulteta , pomocu koga se u hash mapi nalazi objekat i menja
     * @param o -objekat koji hocemo da menjamo
     */
   public void izmeniEntitet (String key,Object o){
    Storage.getInstance().getMapaPodataka().put(key, o);
     
          
   }
   /**
    * vraca mapu koja sadrzi samo oredjeni objekat koji zelimo da prikazemo
    * @return 
    */
   public HashMap prikaziEntitete() {

        HashMap<String,Object> mapa = Storage.getInstance().getMapaPodataka();
        HashMap<String,Object> mapaZaPrikaz = new HashMap();

        for ( Map.Entry<String, Object> entry : mapa.entrySet()) {
            if (uporedi((Entitet)entry.getValue())) {
                mapaZaPrikaz.put(entry.getKey(), entry.getValue());
            }
        }
        return mapaZaPrikaz;
    }
/**
 * da li objerkat odgovara trazenom objektu
 * @param o
 * @return 
 */
    abstract boolean uporedi(Entitet e);
}
